The installation and use of desktop-based software programs, such as Microsoft Office®, Adobe® Acrobat®, Dreamweaver®, Autodesk® and many other document lifecycle software programs, has become commonplace in business and personal applications. While these products, referred to herein as parent programs, provide users with many useful functionalities, the potential for additional features has led to the development of third party products that enhance the capabilities of the document lifecycle software programs. These third party products were developed and designed to integrate with the parent programs to provide additional features that compliment those of the parent program and include products that compare documents, remove metadata from documents, convert an electronic document to PDF, convert a PDF document back to a word processing document or a spread sheet, edit PDF documents, assist with the numbering of documents created in word processing programs, add document identification stamps, or take screenshots of regions or selected areas of computer screens.
While these software programs allow users to perform tasks more efficiently, each desktop-installed software program demands a certain amount of computing resources. In addition, certain desktop-installed software programs may create a resource or usage conflict with other existing desktop-installed software programs. This may occur when one program attempts to integrate with another program or when two programs attempt to use the same integration point to integrate with a third program.
Further, integration of multiple products may cause a parent program to slow down during initial start-up while integrated products load. A third-party product integrated into a parent program is often referred to as an “add-in” and often results in the addition of an icon on the parent program's toolbar to activate the third-party product. These additional icons may take up valuable screen space.
A desire to access computer software products from any computer at any location has led to cloud computing as an alternative for organizations and individuals seeking new ways to manage and access multiple software programs. Also referred to as Software-as-a-Service (SaaS), cloud computing is Internet-based computing, where computers and other devices access hosted software applications in an on-demand scenario. Users log into or otherwise access a cloud computing software program through an Internet-connected interface, for example an Internet browser, and access the full resources of the cloud computing software through this Internet-connected interface.
Cloud computing frees computing resources at the user's local computing device and eliminates problems with integrating third party software applications by liberating users from the need to install the application and run it on their electronic computing device. Examples of cloud computing software include the sales management solution, SalesForce.com®, and the document management solution, NetDocuments™. These products have established robust software solutions located on external servers and are available to users through the Internet without desktop installation requirements.
Several issues with the cloud computing model have limited its full adoption. First, users accustomed to the desktop-installed software model are not yet fully comfortable with the cloud computing model, which requires visiting an Internet location to access a software program rather than simply accessing that software program directly through the user's desktop. Second, while cloud computing software programs may display results of computer processing requests, they do not always have the ability to enable further editing of those results or manipulation of preferences or settings at the cloud level. This limits a user's interactivity with such programs. Finally, requiring an Internet connection in order to access software programs for users unaccustomed to such requirements and an inability to access some or all functions of a software program in the absence of Internet connectivity may cause users to become frustrated and unwilling to adopt the cloud computing model.
A need exists for a product that allows for the advantages provided by the cloud computing model but does not remove advantages of desktop applications. Currently available products do not provide the right methodology to meet these needs.
A desktop widget is a small application located on a user's desktop. A desktop widget takes up minimal computer resources while still providing information to a user. Desktop widgets give users the ability to view discrete and pre-published information from particular data sources, located either on a computer workstation or at an external location. Desktop widgets traditionally provide unidirectional personalized information after receiving a user's predetermined preferences. For example, a weather widget asks the user to choose which city's weather they wish to view. After receiving that choice the widget is unidirectional and only brings back pre-published weather forecast information for the chosen city from an external source, such as Weather.com.
FIG. 1A is a diagram providing a prior art example of the workflow relationship associated with traditional widget applications. In FIG. 1A, user 102 receives data from widget 104 that is located on desktop computer 106. The data is delivered to the user from the external server, for example, a cloud computer software program executing on external server 108, through widget 104 installed on desktop computer 106. As shown in FIG. 1A, data is passed uni-directionally and for one specific function, starting at external server 108 and ending at user 102.
Because widgets provide a single-function and serve only a simple defined purpose, the level of interaction between a user and such a resource is limited. For example, there is no widget that can compare documents or convert a word processing document to PDF or a PDF document to a word processing document. While a user can define predetermined settings and other parameters of their relationship with the widget application, only pre-published information is pulled from an external source (e.g., a blog online, a clock residing on a computer application) and then presented to the user for viewing via the widget graphical user interface (GUI).